System and Method for Dynamic Rate Adaptation Based on Real-Time Call Quality Metrics

ABSTRACT

According to one embodiment, a network device is configured to measure a quality of service associated with a real-time streaming packet received at a first transmission rate. The network device gathers metrics to a call quality based on the quality of service, wherein the metrics are specific to a wireless call quality, and adjusts the first transmission rate to a second transmission rate based on the metrics. Herein, the second transmission rate replaces the first transmission rate to balance between a transmission delay and reliability of the real-time streaming packet.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/665,158, filed on Jun. 27, 2012, the entire contents of which are incorporated by reference.

BACKGROUND

I. Problem

Conventional rate adaptation does not provide for dynamically adapting the transmission rates based on identification of real-time streaming and measuring of call quality metrics. Therefore, they are not able to dynamically improve call quality while taking preventive steps to avert dropped calls, specifically on a wireless network.

II. Prior Solutions

Previously, dynamic rate adaptation was not applied to real-time streaming. Quality of service guarantees in wireless networks are challenging because the air is a dynamic medium. When wireless networks have been used for data transmissions, such transmissions could tolerate delay, jitter, and packet loss without substantially impacting the end-user. Timing has become much more important when dealing with real-time streaming as opposed to data streams, because with real-time streaming, packets lost or out of order by 30-60 milliseconds are of no use to the end-user.

Real-Time Transport Control Protocol (RTCP) had previously been used to monitor a call's Quality of Service (QoS). However, RTCP only measures the end-to-end delay.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:

FIG. 1 is an exemplary block diagram of a communication scheme in accordance with dynamic rate adaptation.

FIG. 2 is an exemplary timing sequence of the rate adaption process of FIG. 1.

FIG. 3 is an exemplary timing sequence for measuring call quality metrics for the downstream real-time traffic.

FIG. 4A is an exemplary flowchart of the rate adaptation process.

FIG. 4B is an exemplary flowchart of components for measuring the rate adaptation process.

DESCRIPTION OF INVENTION

The present invention consists of three main components: the identification of a traffic stream, the calculation of call quality metrics and the adjustment of the call quality metrics. This invention may be used to monitor and dynamically improve the QoS of real-time streaming transmission on a wireless network.

I. Computing Environment

Referring to FIG. 1, one embodiment in which the dynamic rate adaptation may be applied is comprised of Client [150], Client [160], AP [100], AP [130], and Controller [120]. In one embodiment Client [150] is connected to AP [100] through wireless connection [190]. In another embodiment, the client may be connected through a wired connection, and in yet another embodiment, the client may be connected to the AP through both a wired and wireless connection.

In FIG. 1, both AP [100] and AP [130] transmit data to Controller [120] via a wired connection. The transmission consists of upstream transmissions [170] and [171] and downstream transmissions [180] and [181]. Each AP will comprise a buffer. In the present example, AP [100] is shown to comprise Buffer [140].

II. Identification of Traffic Stream

In some embodiments, the type of traffic stream being transmitted needs to be identified prior to applying the dynamic rate adaptation. The identification occurs on a network device prior to the start of the traffic stream. A network device consists of, but is not limited to, an access point (AP), a controller, a hub, a bridge, and a router. The identification may take place on one or more network devices.

Identification of the stream is performed through information obtained from the TCP/IP session information, such as the 5-tuple consisting of {source IP address, destination IP address, protocol, source port number, destination port number}. This information is pulled from signaling messages transmitted by the client. Once the 5-tuple session information is obtained, the network device identifies a packet based on the 5-tuple session information using techniques such as control packet sniffing, deep packet inspection, etc.

A packet is not limited to data used in the Network Layer as described in the Open System Interconnection (OSI) Model but instead is meant to encompass transmissions of data of various sizes with various features. This may include, but is not limited to, a packet, a frame, a segment, a bit, and a datagram. The OSI Model is a way of characterizing a communication system into layers with each layer describing a function within the communication system. The OSI model specifically refers to data passing through its “Network Layer” as a packet.

This invention focuses on real-time streaming transmissions. Examples of real-time streaming transmissions include, but are not limited to, voice traffic streams (known as Voice over IP or VoIP) and video traffic streams. Once the traffic stream has been identified it is monitored on one or more network devices.

III. Calculation of Call Quality Metrics

In order to provide QoS for data transmissions over a wireless network comparable to that of a wired network, certain parameters making up the QoS may be adjusted dynamically. To accomplish such a dynamic rate adaptation, the call quality metrics for both the upstream and downstream traffic can be measured according to embodiments of the present disclosure.

As the metrics of each traffic stream are measured, they are simultaneously gathered and stored for computation of the total delay for each stream. The measuring of quality of service is one aspect in the dynamic rate adaptation where a delay is computed. Separate timestamps are assigned to two packets by the AP: one sampling packet being transmitted from the AP and an acknowledgement packet received by the AP. The upstream computation calls this sampling packet a special request packet and the downstream computation uses a downstream packet.

A. Upstream

Referring to FIG. 2, the upstream traffic is defined as any transmission received by the AP [210] from the client [200]. The Real-time Transport Protocol (RTP) header of the incoming transmission is copied into a buffer on the AP [210] and a timestamp is fastened to the header.

The AP [210] periodically sends the buffered information [240] to the controller [220]. The frequency of which the buffered information [240] is sent is fixed and is dependent on the traffic stream type. The buffered information [240] is transmitted to the controller [220] once the buffer is full. One factor which may influence transmission of the buffered information [240] is the periodicity of the traffic stream. Once the controller [220] receives the transmission of the buffered information [240] from the AP [210], the controller [220] determines the jitter and packet loss for the upstream transmission.

The AP [210] participates in the rate adaptation process by calculating the end-to-end delay for the upstream traffic. Two components are computed which comprise the end-to-end delay: the propagation delay [250] and the transmission delay [260]. The propagation delay [250] is the time taken by the AP [210] in processing the upstream packet [230] once it has been received by the client [200] and queuing it for transmission to the controller [220]. The propagation delay [250] is determined by taking the difference between the timestamps of the when the packet arrived at the AP and when the packet is queued for transmission to the controller [220].

The transmission delay [260] is the time taken for an upstream packet [230] to be sent from the AP [210] to the controller [220] and back to the AP [210]. This is computed by periodically sending a special request packet [241], waiting for an acknowledgement packet [242] from the controller [220], and taking the difference between the times the two events occurred.

The end-to-end delay is calculated for each upstream packet [230] that is received by the AP [210]. The upstream delay is computed from each metric that has been gathered by the AP [210]: upstream jitter, upstream packet loss, and end-to-end delay. The upstream delay is periodically sent to the controller.

B. Downstream

Referring to FIG. 3, the call quality metrics are measured for the downstream real-time traffic on an AP for wireless transmissions. AP [310] determines how much time has elapsed between the arrival of downstream packet [330] at client [320] and the receipt of acknowledgement packet [331] from the client [320]. Downstream packet [330] is assigned a first timestamp at its arrival and downstream packet [330] is queued for transmission on AP [310]. AP [310] awaits an acknowledgement notifying AP [310] whether downstream packet [330] was successfully received or whether downstream packet [330] was lost. A second timestamp is assigned to acknowledgement packet [331] and end-to-end delay [350] is determined by computing the difference between the first timestamp and the second timestamp.

Furthermore, in the process to compute the end-to-end delay [350] of the transmission of a downstream packet [330] the AP [310] calculates packet loss as it is aware of which downstream packets are successfully received by the client [320] and which are lost through the acknowledgement packet [331]. The AP [310] also calculates the downstream packet jitter for the downstream transmission by analyzing the variance in the end-to-end delay [350] for each downstream packet [330].

The downstream call quality metrics are comprised of the three measurements computed on the AP [310] as described above: the end-to-end delay for a downstream packet [350], the downstream packet loss, and the downstream packet jitter. The downstream call quality metrics are periodically sent to the controller [300].

IV. Adjustment of Call Quality Metrics

As the controller is periodically sent the upstream and downstream call quality metrics, it is able to analyze the QoS being delivered to the client. Through analyses of the call quality metrics of transmissions in both the upstream and downstream directions, a dynamic rate adaptation algorithm adjusts one or more of several parameters in order to maintain a consistent, reliable service. Such parameters comprise: the rate of transmission of each packet, the number of retransmission attempts for each packet, and the transmit power of each packet.

As transmission proceeds, the QoS may change due to external factors such as interference in the medium or an increase in load on the system. In order to maintain a consistent and reliable QoS, the call quality metrics must be continuously measured. As the several factors are adjusted for subsequent packets, these packets are transmitted at a second transmission rate. The metrics are then measured and gathered on the second transmission rate. The dynamic rate adaptation algorithm is applied to this second transmission rate.

V. Dynamic Rate Adaptation Process

Referring to FIG. 4A, the rate adaptation process comprises three main components. The first step, block [400], comprises measuring the quality of service of a real-time streaming packet at a first transmission rate or at a second, adjusted transmission. A delay may be computed based on the transmission rate. Separate timestamps are assigned to two packets by the AP: one sampling packet being transmitted from the AP and an acknowledgement packet received by the AP.

The second step, block [410], comprises the gathering of wireless specific metrics to a call quality of the real-time streaming packet. Such metrics that are gathered a delay, a packet loss, and a packet jitter.

The third step, block 420, applies a dynamic rate adaptation algorithm to the first transmission rate to a second transmission rate based on the measuring of the quality of service and metrics gathered in blocks [400] and [410] respectively. The result of the adjustment of the first transmission rate based on the dynamic rate adaptation algorithm is a second transmission rate. The rate adaptation process then begins again on the second transmission rate in order maintain a constant, reliable service.

Referring to FIG. 4B, the measuring of the rate adaptation process comprises three main components. The first component, block [430], comprises the transmission of a sampling packet comprising a first timestamp at an interval. The second component, block [440], receives an acknowledgement packet comprising a second timestamp. The third component, block [450], determines the quality of service by at least performing a comparison of the first timestamp and the second timestamp. In one embodiment, this determination may be based on at least the end-to-end delay.

Such a process can be implemented on a per packet basis, increasing the rate as which call quality may be improved. 

What is claimed is:
 1. A method comprising: measuring, by a network device, a quality of service associated with a real-time streaming packet received at a first transmission rate, gathering, by the network device, metrics to a call quality based on the quality of service, wherein the metrics are specific to a wireless call quality, and adjusting, by the network device, the first transmission rate to a second transmission rate based on the metrics, wherein the second transmission rate replaces the first transmission rate to balance between a transmission delay and reliability of the real-time streaming packet.
 2. The method of claim 1, further comprising: Identifying, by the network device, the real-time streaming packet from received network packets based on a packet type.
 3. The method of claim 2, wherein identifying the real-time streaming packet comprises one or more of sniffing a control packet and performing a deep packet inspection.
 4. The method of claim 2, wherein the packet type comprises an i-frame, a p-frame, or a b-frame.
 5. The method of claim 1, wherein measuring the quality of service comprises: transmitting, by the network device, a sampling packet comprising a first timestamp at an interval, wherein the interval is adjusted based on one or more of a per packet basis and a per client basis, receiving, by the network device, an acknowledgement packet comprising a second timestamp, and determining the quality of service, by the network device, based on at least a comparison of the first timestamp with the second timestamp.
 6. The method of claim 3, wherein the metrics comprise one or more of a packet loss, the delay, a jitter, a packet type, and a time gap between the sampling packet and the acknowledgement packet.
 7. The method of claim 5, wherein the delay comprises one or more of a propagation delay and a transmission delay of the real-time streaming packet.
 8. The method of claim 1, further comprising measuring, by the network device, the quality of service associated with the real-time streaming packet at the second transmission rate.
 9. The method of claim 1, wherein the real-time streaming packet comprises one of an upstream packet and a downstream packet, wherein the upstream packet is received from the client, and wherein the downstream packet is received from another network device.
 10. The method of claim 1, wherein the adjusting comprises increasing or decreasing one or more of the first transmission rate of the real-time streaming packet, a number of retransmission attempts for the real-time streaming packet, and a transmission power associated with the real-time streaming packet.
 11. A system comprising: one or more client devices; a controller; and a network device communicatively coupled to the one or more client devices and the controller, the network device being configured to (i) measure a quality of service associated with a real-time streaming packet received at a first transmission rate, (ii) gather metrics to a call quality based on the quality of service, wherein the metrics are specific to a wireless call quality, and (iii) adjust the first transmission rate to a second transmission rate based on the metrics, wherein the second transmission rate replaces the first transmission rate to balance between a transmission delay and reliability of the real-time streaming packet.
 12. The system of claim 11, wherein the network device further identifies real-time streaming packet from received network packets based on a packet type.
 13. The system of claim 12, wherein the network device identifies real-time streaming packet by sniffing a control packet and performing a deep packet inspection.
 14. The system of claim 12, wherein the packet type comprises an i-frame, a p-frame, or a b-frame.
 15. The system of claim 11, wherein the network device measuring the quality of service by: Transmitting a sampling packet comprising a first timestamp at an interval, wherein the interval is adjusted based on one or more of a per packet basis and a per client basis, Receiving an acknowledgement packet comprising a second timestamp, and determining the quality of service based on at least a comparison of the first timestamp with the second timestamp.
 16. The system of claim 13, wherein the metrics comprise one or more of a packet loss, the delay, a jitter, a packet type, and a time gap between the sampling packet and the acknowledgement packet.
 17. The system of claim 15, wherein the delay comprises one or more of a propagation delay and a transmission delay of the real-time streaming packet.
 18. The system of claim 11, wherein the network device further measures the quality of service associated with the real-time streaming packet at the second transmission rate.
 19. The system of claim 11, wherein the real-time streaming packet comprises one of an upstream packet and a downstream packet, wherein the upstream packet is received from a client device of the one or more client devices, and wherein the downstream packet is received from another network device.
 20. The system of claim 11, wherein the network device adjusting the first transmission rate comprises increasing or decreasing one or more of the first transmission rate of the real-time streaming packet, a number of retransmission attempts for the real-time streaming packet, and a transmission power associated with the real-time streaming packet. 